With a conventional video game machine, when a video game program is started and a game starts progressing, game data representing the current status of the game is produced in an internal memory provided in the video game machine. When the player suspends the game, the game data in the internal memory is temporarily saved in a memory card inserted in the video game device. When the player resumes the game, the game data temporarily saved in the memory card is loaded to the internal memory. Then, the game process is performed while referring to the game data, which has been loaded to the internal memory. Thus, the player can resume the game from the point where the game was suspended.
When a saved game is resumed, the game data stored in the memory card is always loaded to a particular storage address of the internal memory. For example, the value of a particular game parameter included in the game data (e.g., the value representing the life points of the player character) is always loaded to a particular area of the internal memory. Therefore, in the game process, it is possible to immediately obtain the value of a game parameter by referring to the particular address corresponding to the game parameter to be obtained. Specifically, a value representing the life points of the player character is stored in a first storage address of the internal memory, a value representing the coordinate of the position of the player character in the game space is stored in a second storage address, a value representing the amount of money in the game space is stored in a third storage address, and other values representing the kinds of monsters that the player character has captured, etc., are stored in fourth through tenth storage addresses.
It is known that the status of a game can be reproduced based on game data as described above. Game data overwriting devices, and the like, are sold for overwriting and modifying the game data by, for example, increasing the amount of money in the game world or maximizing other parameters of the game character.
In order to prevent such modifications, game data stored in a backup memory such as a memory card is encrypted in some cases for example, Japanese Laid-Open Paten Publication No. 2001-265658). In such cases, it is necessary to decrypt the game data stored in the backup memory in order to modify the game data. Then, it is quite difficult to overwrite the game data.
In view of this, there have been game data overwriting devices for allowing the user to overwrite game data which has been loaded from the backup memory to the internal memory during the game process, instead of modifying the game data as being stored in the backup memory.
The user of such a game data overwriting device uses values being displayed on the game screen to identify storage addresses of the internal memory at which these values are stored. For example, where the amount of money is being displayed on the game screen, a value equal to the amount of money is searched for in the game data stored in the internal memory to identify the storage address of the internal memory at which the value is stored. Thus, the player can identify storage addresses for particular game parameters. Then, the player can overwrite the value stored in an identified storage address to manipulate a particular game parameter as desired.
Japanese Laid-Open Patent Publication No. 7-44378 discloses a method for starting a program with which alterations to the program can be detected. However, the disclosure is directed to detecting alterations to a program by using checksums when starting the program, but not to preventing the overwriting of data stored in an internal memory.
If a player identifies a storage address for a particular game parameter, that information may become known to large numbers of the general public through the Internet, magazines, etc. Identifying addresses at which game parameters are stored as described above requires a certain level of technical knowledge and a lot of time and effort, and is a difficult task for general users. However, once the information on addresses where particular game parameters are stored is publicly disclosed, even general users can easily modify the game data.
Thus, anyone can easily modify the game data by purchasing a game data overwriting device. Then, a large number of players may modify the game data, whereby the game progresses in a manner not intended by the game maker. This may significantly reduce, or even destroy, the playability of the game. Particularly, with multiplayer online games, or the like, if an abnormally strong player character is created through modifications of the game data, the power balance between such a strong player character and a normal player character cannot be maintained, and the overall game balance may be destroyed. Another problem is that such modifications of game data may encourage infringement of copyright (see, for example, Japanese Supreme Court Case 1999 (ju) No. 955 delivered on Feb. 13, 2001).
Although such a problem may be avoided by encrypting the game data stored in the internal memory, a process for recovering complicated encrypted data imposes a high computational load, which may even affect the execution of the video game program. This will also make it quite time-consuming to refer to, or overwrite game data in, an internal memory for debugging a video game program being developed.
Thus, if overwriting game data is made overly difficult, reading out the game data by the video game program may impose an excessive computational load and the debugging of the program may become excessively time-consuming. Nevertheless, if game data stored in an internal memory is left as it is as in the prior art keeping the debugging process easy, the data can easily be modified.
The present exemplary embodiments have the following features to solve these problems. Note that reference numerals, etc., shown in parentheses are for indicating how those elements are related to the exemplary illustrative embodiments below to assist the reader in understanding the present invention, but they are in no way intended to restrict the scope of the invention.
A computer-readable recording medium of the exemplary illustrative embodiments is a computer-readable recording medium (11), storing a first game data control program for arranging game data in an internal memory (35) of a video game device (13) for use in a game process, the game data including a plurality of game parameters representing a status of a game stored in an external storage medium (23) connected to the video game device, wherein the game data control program instructs a computer to function as storage area a setter (31, S203), a game data loader (31, S107), an arrangement information storage mechanism (31, S205), and a storage area determination mechanism (31, S503). Before the game data is arranged, the storage area setter sets a storage area for the game data in the internal memory so that each game parameter is arranged in a different storage area each time the game data is arranged (FIG. 5, FIG. 14, FIG. 15). The game data loader loads the game data from the external storage medium to the storage area set by the storage area setter. When the storage area setter sets the storage area for the game data, the arrangement information storage mechanism stores arrangement information (FIG. 5, FIG. 14, FIG. 15) in a specified area of the internal memory, the arrangement information being information which directly or indirectly indicates the storage area for each game parameter. When a game parameter in the internal memory needs to be referred to or overwritten during the game process, the storage area determination mechanism determines the storage area for the game parameter by referring to the arrangement information.
In one exemplary illustrative embodiment, the storage area setter directly or indirectly sets the storage area for the game data by specifying at least one address of the internal memory (e.g., the storage start address).
In one exemplary illustrative embodiment, the game data control program instructs the computer to function further as a game data saver (31, S603) for saving the game data in a predetermined original format in the external storage medium by referring to the arrangement information when the game data in the internal memory needs to be saved in the external storage medium during the game process.
In one exemplary illustrative embodiment, the storage area setter sets the storage area for the game data in the internal memory based on a random number (S201).
In one exemplary illustrative embodiment, the storage area setter specifies an offset value for shifting the storage area for the game data as a whole in the internal memory so that the storage area for the game data is changed each time the game data is arranged; and the game data loader loads the game data as a whole to the internal memory so that a storage position relationship between the game parameters is maintained, by using, as a base address, an address obtained by adding the offset value to a specified address of the internal memory (FIG. 5).
The game data is divided into a plurality of blocks, and the storage area setter sets a storage area for each block of game data in the internal memory so that a storage position relationship between the blocks is changed each time the game data is arranged (FIG. 14). In one exemplary illustrative embodiment, each block corresponds in size to one address of the internal memory.
In one exemplary illustrative embodiment, the game data control program instructs the computer to function further as: storage area changer (31, 5405) for changing the storage area for each game parameter which has been loaded to the internal memory at a predetermined time during the game process; and data rearranger (31, S409) for rearranging the game parameters based on results of the storage area changing process by the storage area changer, wherein the arrangement information storage mechanism updates the arrangement information when the data rearranger rearranges the game parameters (S407).
Another computer-readable recording medium of an exemplary illustrative embodiment is a computer-readable recording medium (11), storing a second game data control program for arranging game data in an internal memory (35) of a video game device (13) for use in a game process, the game data including a plurality of game parameters representing a status of a game stored in an external storage medium (23) connected to the video game device, wherein the game data control program instructs a computer to function as game a data loader (31, S107), a storage area changer (31, S405), a data rearranger (31, S409), an arrangement information storage mechanism (31, S407), and a storage area determination mechanism (31, S503). The game data loader loads the game data from the external storage medium to the internal memory. The storage area changer changes a storage area for each game parameter which has been loaded to the internal memory, at a predetermined time during the game process (FIG. 7, FIG. 14, FIG. 15). The data rearranger rearranges the game parameters based on results of the storage area changing process by the storage area changer. When the game parameters are rearranged by the data rearrangement means, the arrangement information storage mechanism stores arrangement information (FIG. 5, FIG. 14, FIG. 15) in a specified area of the internal memory, the arrangement information being information which directly or indirectly indicates the storage area for each game parameter. When a game parameter in the internal memory needs to be referred to or overwritten during the game process, the storage area determination mechanism determines the storage area for the game parameter by referring to the arrangement information.
In one exemplary illustrative embodiment, the storage area changer directly or indirectly sets the storage area for the game data after the storage area changing process by specifying at least one address of the internal memory (e.g., the storage start address).
In one exemplary illustrative embodiment, when the game data in the internal memory needs to be saved in the external storage medium during the game process, the game data control program instructs the computer to function further as game data saver (31, S603) for saving the game data in a predetermined original format in the external storage medium by referring to the arrangement information.
In one exemplary illustrative embodiment, the storage area changer changes the storage area for the game data in the internal memory based on a random number (S201).
In one exemplary illustrative embodiment, the storage area changer changes the storage area for the game data in the internal memory by specifying an offset value for shifting the storage area for the game data as a whole in the internal memory; and the data rearranger rearranges the game data as a whole in the internal memory so that a storage position relationship between the game parameters is maintained, by using, as a base address, an address obtained by adding the offset value to a specified address of the internal memory (FIG. 7).
In one exemplary illustrative embodiment, the game data is divided into a plurality of blocks, and the storage area changer changes a storage area for each block of game data in the internal memory so that a storage position relationship between the blocks is changed each time the game data is rearranged (FIG. 14).
In one exemplary illustrative embodiment, each block corresponds in size to one address of the internal memory.
Still another computer-readable recording medium of the exemplary illustrative embodiments is a computer-readable recording medium, storing a first game data overwriting program for overwriting data of a predetermined parameter included in the game data, which is stored in the internal memory (35) by the first or second game data control program set forth above, wherein the game data overwriting program instructs a computer (79) to perform: a step of prompting a player to input a first search value (S703); a step of searching for a value corresponding to the first search value through the game data stored in the internal memory (S707) and detecting at least one first storage address at which the value is stored (S709); a step of following the first storage address, which dynamically changes, by using, as indices, values at a plurality of storage addresses which are each in a fixed positional relationship (e.g., being next to, or being apart from by a certain number of addresses) with the detected first storage address and the value at the first storage address (S715); a step of prompting the player to input a second search value (S721); a step of searching for a value corresponding to the second search value (S725) and detecting at least one second storage address at which the value is stored (S721); a step of determining a target storage address as being at least one of the second storage address that coincides with the first storage address (S731); a step of prompting the player to input a new value for the target storage address (S733); and a step of overwriting the value at the target storage address with the inputted new value (S735).
Still another computer-readable recording medium of the exemplary illustrative embodiments is a computer-readable recording medium, storing a second game data overwriting program for overwriting the game data, which is arranged in the internal memory (35) by the first or second game data control program set forth above, wherein the game data overwriting program instructs a computer (79) to perform: a step of receiving an input of a code for overwriting a predetermined item of the game data with a predetermined value (S803); a step of identifying a target storage address at which the predetermined game data item to be overwritten is stored, based on the inputted code and the arrangement information stored in the internal memory by the arrangement information storage mechanism (S809); and a step of overwriting a value of a game data item stored at the identified target storage address with the predetermined value indicated by the code (S811).
A game data overwriting device of an exemplary illustrative embodiments is a game data overwriting device, including therein the first or second game data overwriting program set forth above, and a control section (79) for overwriting a game data item according to the game data overwriting program.
With the first game data control program of the exemplary illustrative embodiments, each time the game data is loaded from the backup memory, the game data is stored at a different storage address of the internal memory. Therefore, even if someone identifies the storage address of the internal memory at which a particular parameter is stored, the data will be stored at a different storage address next time the game data is loaded from the backup memory. Thus, if someone overwrites data at a storage address publicly disclosed in a magazine or on the Internet, it will only destroy the game data. Therefore, it is possible to prevent general users from easily modifying the game data.
Where the loaded game data in the internal memory is arranged back in a predetermined original format when it is saved back in the external storage medium, the game data will be stored in the external storage medium always in a uniform format.
Where the storage area in the internal memory for the game data is set based on a random number, it is no longer possible to predict the area in the internal memory where a game parameter is to be loaded. Thus, it is more difficult to modify the game data.
Where the game data as a whole is shifted to a different area each time the game data is loaded, it is only required that the start address of the storage area for the game data, for example, is stored as the arrangement information, whereby it is possible to save space in the internal memory.
Where the game data is divided into a plurality of blocks, and the blocks are loaded into different areas each time the game data is loaded, it is more difficult to identify the area in the internal memory where a particular game data item is loaded, as compared with a case where the game data as a whole is shifted each time the game data is loaded. The smaller the block size is, the more difficult it is to identify the area where a particular game data item is loaded.
With the second game data control program of the exemplary illustrative embodiments, after the game data is loaded to the internal memory, the storage address at which the game data is stored is changed dynamically. Therefore, even when the game is being played, the storage address for the game data changes dynamically, whereby it is possible to more effectively prevent general users from easily modifying the game data.
With the first game data overwriting program of the exemplary illustrative embodiments, the storage address for the game parameter to be overwritten is identified taking into consideration not only the detected candidate storage address for the game parameter to be overwritten, but also values stored at other addresses each having a fixed positional relationship with the detected candidate storage address. Therefore, it is possible to detect the storage address for the game parameter to be overwritten even if the storage address for the game data periodically shifts in the internal memory.
With the second game data overwriting program of the exemplary illustrative embodiments, the game data is overwritten while referring to the arrangement information stored in a specified area of the internal memory. Therefore, it is possible to easily overwrite the game data in the internal memory simply by inputting a code even if the storage address for the game data periodically changes in the internal memory.